/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.seguradora.model;

import br.com.seguradora.util.DateFormatter;
import br.com.seguradora.util.MoneyFormatter;
import com.towel.el.annotation.Resolvable;
import java.util.Date;
import java.util.List;

/**
 *
 * @author Diego
 */
public class Vistoria {

    @Resolvable(colName = "Código")
    private long id;
    @Resolvable(colName = "Data da vistoria", formatter = DateFormatter.class)
    private Date data;
    @Resolvable(colName = "Veículo")
    private Veiculo veiculo;
    @Resolvable(colName = "Placa")
    private String placa;
    @Resolvable(colName = "Associado")
    private String associado;
    @Resolvable(colName = "Valor", formatter = MoneyFormatter.class)
    private double valor;
    private List<Foto> fotosList;

    public Vistoria() {
    }

    public Vistoria(long id) {
        this.id = id;
    }

    public List<Foto> getFotosList() {
        return fotosList;
    }

    public void setFotosList(List<Foto> fotosList) {
        this.fotosList = fotosList;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public Veiculo getVeiculo() {
        return veiculo;
    }

    public void setVeiculo(Veiculo veiculo) {
        this.veiculo = veiculo;
        this.placa = veiculo.getPlaca();
        this.associado = veiculo.getAssociado().getId() + " - " + veiculo.getAssociado().getNome();
    }

    public double getValor() {
        return valor;
    }

    public void setValor(double valor) {
        this.valor = valor;
    }

    public Date getData() {
        return data;
    }

    public void setData(Date data) {
        this.data = data;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Vistoria other = (Vistoria) obj;
        if (this.id != other.id) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 19 * hash + (int) (this.id ^ (this.id >>> 32));
        return hash;
    }
}
